﻿using System;
using System.Collections.Generic;
using UD.Seguridad.Business;
using UD.Seguridad.Entity;
using UD.Utilities.Exceptions;

namespace UD.Seguridad.Service
{
    public class SeguridadService
    {
        private ModuloBLL oModuloBLL;
        private ProgramaBLL oProgramaBLL;

        public SeguridadService()
        {
            oModuloBLL = new ModuloBLL();
            oProgramaBLL = new ProgramaBLL();
        }


        #region ModuloBLL

        public List<Modulo> ConsultarModulos(String pNombreModulo, int? pPosicionModulo, Boolean? pEstadoModulo)
        {
            try
            {
                return oModuloBLL.ConsultarModulos(pNombreModulo, pPosicionModulo, pEstadoModulo);
            }
            catch (UserInterfaceException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new GenericException(ex);
            }
        }
        
        #endregion

        #region ProgramaBLL        

        public List<Programa> ConsultarProgramas(int? pIdModulo, String pNombrePrograma, String pCodigoPrograma, int? pPosicionPrograma, Boolean? pEstadoPrograma, int? pPadrePrograma)
        {
            try
            {
                return oProgramaBLL.ConsultarProgramas(pIdModulo, pNombrePrograma, pCodigoPrograma, pPosicionPrograma, pEstadoPrograma, pPadrePrograma);
            }
            catch (UserInterfaceException)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new GenericException(ex);
            }
        }

        #endregion
    }
}
